The User Interface Programming System

<#4801#>

As defined by CLUE, contact objects represent an intermediate level of abstraction within a larger user interface programming system. CLUE relies upon the services of a lower-level subsystem typically referred to as a <#125#>window system<#125#>. CLUE, in turn, forms the basis for a more comprehensive <#127#>user interface management system<#127#> (UIMS).

CLUE depends on a window system to provide programmer interfaces for controlling interactive I/O hardware --- the display screen(s), the keyboard, the pointer, etc. Specifically, CLUE is defined in terms of the X Window System protocol[#x-protocol##1###] and CLX, the Common Lisp programmer's interface to the X Window System[#clx##1###].

Most window systems, including X, contain a component that is commonly called the <#133#>window manager<#133#>. The window manager is the part of the window system that provides a user interface to various operations on windows --- changing a window's position, size, visibility, etc. Since an X window manager is simply another application program (albeit a rather specialized one), the definition of a window manager is <#135#>not<#135#> included in the CLUE specification.

CLUE distinguishes two different aspects of programming the user interface:

The <#138#>application programmer<#138#> who instantiates and uses a contact object does not need to know how the class and methods of the contact were implemented by the <#140#>contact programmer<#140#>. In particular, the window system interfaces used by the contact programmer need not be visible to the CLUE application programmer.

This distinction contributes to the separation of application programming from user interface programming, one of the primary goals of a UIMS. In terms of the Seeheim UIMS model[#pfaff-uims##1###], contacts represent the presentation (or lexical) component of a user interface.

<#4811#>by-1<#4811#> =0 <#4812#>=0 <#4816#>